Jim Porter [Sun, 17 Mar 2024 19:01:59 +0000 (12:01 -0700)]
Allow toggling "readable" mode in EWW
Additionally, add an option to prevent adding a new history entry for
each call of 'eww-readable' (bug#68254).
* lisp/net/eww.el (eww-retrieve):
* lisp/net/eww.el (eww-readable-adds-to-history): New option.
(eww-retrieve): Make sure we call CALLBACK in all configurations.
(eww-render): Simplify how to pass encoding.
(eww--parse-html-region, eww-display-document): New functions, extracted
from...
(eww-display-html): ... here.
(eww-document-base): New function.
(eww-readable): Toggle "readable" mode interactively, like with a minor
mode. Consult 'eww-readable-adds-to-history'.
(eww-reload): Use 'eshell-display-document'.
* test/lisp/net/eww-tests.el (eww-test--with-mock-retrieve): Fix indent.
(eww-test/display/html, eww-test/readable/toggle-display): New tests.
* doc/misc/eww.texi (Basics): Describe the new behavior.
* etc/NEWS: Announce this change.
Eli Zaretskii [Sat, 23 Mar 2024 17:10:17 +0000 (19:10 +0200)]
; * doc/misc/dired-x.texi (Omitting Variables): Fix markup.
Spencer Baugh [Sat, 16 Mar 2024 17:11:24 +0000 (17:11 +0000)]
Use 'regexp-opt' in 'dired-omit-regexp'
In my benchmarking, for large dired buffers, using 'regexp-opt'
provides around a 3x speedup in omitting.
'regexp-opt' takes around 5 milliseconds, so to avoid slowing
down omitting in small dired buffers we cache the return value.
Since omitting is now 3x faster, increase 'dired-omit-size-limit'
by 3x. Also, document 'dired-omit-size-limit' better.
* doc/misc/dired-x.texi (Omitting Variables): Document
'dired-omit-size-limit'.
* etc/NEWS: Announce increase of 'dired-omit-size-limit'.
* lisp/dired-x.el (dired-omit--extension-regexp-cache): Add.
(dired-omit-regexp): Use 'regexp-opt'. (Bug#69775)
(dired-omit-size-limit): Increase and improve docs.
Eli Zaretskii [Sat, 23 Mar 2024 16:54:39 +0000 (18:54 +0200)]
* src/coding.c (produce_chars): Fix a thinko (bug#69966).
Eli Zaretskii [Sat, 23 Mar 2024 10:51:40 +0000 (06:51 -0400)]
Merge from origin/emacs-29
e95a8622263 ; * lisp/keymap.el (key-parse): Fix processing of "[TAB]"...
afb7a23e7b9 ; Improve documentation of 'backup-by-copying'
Eli Zaretskii [Sat, 23 Mar 2024 10:51:40 +0000 (06:51 -0400)]
; Merge from origin/emacs-29
The following commit was skipped:
51848e4731f * Fix missing `comp-files-queue' update (bug#63415).
Eli Zaretskii [Sat, 23 Mar 2024 10:51:39 +0000 (06:51 -0400)]
Merge from origin/emacs-29
689f04a2ddf Clarify description of format-spec truncation
759dedfab07 More accurate documentation of 'rmail-mail-new-frame'
fa79de7c6b8 ; * lisp/calendar/calendar.el: Remove extra space.
7f6e335f4b4 Fix documentation of M-SPC in user manual
5bdc2436c64 ; * lisp/emacs-lisp/cl-macs.el (cl-labels): Fix stray dif...
8014dbb2ad8 * admin/notes/bugtracker: Minor copyedit.
06a991e7e87 ; * admin/notes/bugtracker: Minor copyedit.
c890622e1a9 Tweak regexp for object initializers in csharp-mode (bug#...
f48babb1120 `term-mode': mention the keymap to add keybindings to
8cf05d9be12 Fix 'shortdoc-copy-function-as-kill'
d5901f3f05e Improve documentation of 'edebug-print-*' variables
Po Lu [Sat, 23 Mar 2024 10:15:28 +0000 (18:15 +0800)]
Merge remote-tracking branch 'savannah/master' into master-android-1
Po Lu [Sat, 23 Mar 2024 10:14:12 +0000 (18:14 +0800)]
Enable calling decode_coding_object with both SRC and DST_OBJECT Qnil
* src/coding.c (growable_destination): A C destination is also
reallocable.
(produce_chars): Don't consider source and destination identical
if they are EQ but Qnil.
Po Lu [Sat, 23 Mar 2024 10:12:56 +0000 (18:12 +0800)]
Minor adjustments to last change
* src/androidvfs.c (android_vfs_convert_name): Simplify.
(android_saf_tree_readdir, android_root_name): Remove redundant
statements.
Eli Zaretskii [Sat, 23 Mar 2024 09:50:55 +0000 (11:50 +0200)]
; Fix doc strings of some treesit-related functions
* lisp/treesit.el (treesit-defun-tactic)
(treesit-defun-name-function, treesit-thing-at-point)
(treesit-defun-at-point):
* lisp/progmodes/c-ts-common.el (c-ts-common-statement-offset):
* lisp/progmodes/c-ts-mode.el (c-ts-mode-toggle-comment-style)
(c-ts-mode-indent-style, c-ts-mode-emacs-sources-support)
(c-ts-mode--syntax-propertize, c-ts-mode--anchor-prev-sibling)
(c-ts-mode--standalone-parent-skip-preproc)
(c-ts-mode--standalone-grandparent, c-ts-mode--else-heuristic)
(c-ts-mode--declarator-identifier)
(c-ts-mode--fontify-declarator, c-ts-mode--fontify-variable)
(c-ts-mode--defun-valid-p)
(c-ts-mode--defun-for-class-in-imenu-p)
(c-ts-mode--defun-skipper, c-ts-mode--emacs-defun-p)
(c-ts-mode--emacs-defun-at-point)
(c-ts-mode--emacs-current-defun-name, c-ts-mode--reverse-ranges)
(c-ts-mode, c++-ts-mode, c-or-c++-ts-mode): Doc fixes.
Eli Zaretskii [Sat, 23 Mar 2024 09:09:57 +0000 (11:09 +0200)]
Improve support for preprocessor macros in 'c/c++-ts-mode'
* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name)
(c-ts-base-mode): Support preprocessor macros as defuns. This
fixes both navigation by defuns and add-log when cpp macros are at
point.
Eli Zaretskii [Sat, 23 Mar 2024 07:51:47 +0000 (09:51 +0200)]
Avoid infinite recursion in 'image-mode--display'
* lisp/image-mode.el (image-mode): Suspend major mode only if it
is not already 'image-mode'. (Bug#69785)
Dionisio E Alonso [Wed, 20 Mar 2024 15:06:30 +0000 (17:06 +0200)]
Add BasedPyright LSP server alternative for Eglot's 'python-mode'
* lisp/progmodes/eglot.el (eglot-server-programs): Add
BasedPyright, a new server for python, forked from the
unmaintained 'pyright' LSP server. (Bug#69925)
Copyright-paperwork-exempt: yes
Po Lu [Sat, 23 Mar 2024 07:37:43 +0000 (15:37 +0800)]
Correctly handle non-BMP characters in Android content file names
* lisp/term/android-win.el (android-encode-jni)
(android-decode-jni, android-jni): New coding system, for
Android file names and runtime data.
* src/androidterm.h (syms_of_androidvfs): New function.
* src/androidvfs.c (struct android_special_vnode): New field
special_coding_system.
(android_saf_tree_readdir): Decode the file name using the
android-jni coding system.
(special_vnodes): <contents>: Specify a file name coding system.
(android_vfs_convert_name): New function.
(android_root_name): If a special coding system be specified for
a special vnode, convert components to it before invoking its
name function.
(syms_of_androidvfs): New symbol Qandroid_jni.
* src/emacs.c (android_emacs_init): Call syms_of_androidvfs.
john muhl [Tue, 12 Mar 2024 16:17:15 +0000 (11:17 -0500)]
; Remove unneeded group in lua-ts-mode defcustoms
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode-hook):
(lua-ts-indent-offset):
(lua-ts-luacheck-program):
(lua-ts-inferior-buffer):
(lua-ts-inferior-program):
(lua-ts-inferior-options):
(lua-ts-inferior-startfile):
(lua-ts-inferior-prompt):
(lua-ts-inferior-prompt-continue):
(lua-ts-inferior-history):
(lua-ts-indent-continuation-lines): Remove :group. (bug#69910)
john muhl [Wed, 20 Mar 2024 00:46:12 +0000 (19:46 -0500)]
; Open inferior Lua buffer in a window, not a frame
* lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua): Replace
'display-buffer-pop-up-window' with
'display-buffer-pop-up-frame'. (bug#69909)
Stefan Monnier [Fri, 22 Mar 2024 22:44:54 +0000 (18:44 -0400)]
Fix recent test regressions
* lisp/emacs-lisp/pp.el (pp-fill): Don't cut between `#` and `(`.
* test/lisp/help-fns-tests.el (help-fns-test-built-in)
(help-fns-test-interactive-built-in, help-fns-test-lisp-defun)
(help-fns-test-lisp-defsubst):
* test/src/emacs-module-tests.el (module/describe-function-1):
Adjust tests to new wording in `describe-function`.
Stefan Monnier [Fri, 22 Mar 2024 21:03:15 +0000 (17:03 -0400)]
etc/NEWS: Document the new behavior of `describe-function`
I pushed commit
accd79c93935 by accident.
Related to bug#69935
Stefan Monnier [Fri, 22 Mar 2024 20:46:28 +0000 (16:46 -0400)]
(pp-fill): Cut before parens and dots
The `pp-fill` code sometimes end up generating things like:
(foo .
bar)
instead of
(foo
. bar)
so make sure we cut before rather than after the dot (and open
parens while we're at it).
* lisp/emacs-lisp/pp.el (pp-fill): Cut before parens and dots.
* test/lisp/emacs-lisp/pp-tests.el (pp-tests--dimensions): New function.
(pp-tests--cut-before): New test.
Stefan Monnier [Fri, 22 Mar 2024 01:08:58 +0000 (21:08 -0400)]
(help-fns-function-description-header): Print functions' type
Instead of choosing English words to describe the kind of function,
use the actual type of the function object (from `cl-type-of`)
directly, and make it a button to display info about that type.
* lisp/help-fns.el (help-fns-function-description-header): Use the
function's type name in the description instead of "prose".
Use `insert` instead of `princ`, so as to preserve the text-properties
of the button.
* lisp/emacs-lisp/cl-extra.el (cl-help-type): Move to `help-mode.el`
and rename to `help-type`.
(cl--describe-class): Adjust accordingly.
* lisp/help-mode.el (help-type): New type, moved and renamed from
`cl-extra.el`.
Eli Zaretskii [Fri, 22 Mar 2024 07:54:37 +0000 (09:54 +0200)]
; * lisp/help-fns.el (help-fns-function-name): Doc fix.
Po Lu [Fri, 22 Mar 2024 07:24:28 +0000 (15:24 +0800)]
Fix display of custom menus after putative cosmetic change
* lisp/wid-edit.el (widget-setup): Restore version from before
the previous commit.
Stefan Monnier [Fri, 22 Mar 2024 01:43:38 +0000 (21:43 -0400)]
* lisp/help.el (help--analyze-key): Use `help-fns-function-name`
Stefan Monnier [Thu, 21 Mar 2024 23:40:20 +0000 (19:40 -0400)]
(help-fns-function-name): New function
Consolidate code used in profiler and help--describe-command,
and improve it while we're at it.
Also use #' to quote a few function names along the way.
* lisp/help-fns.el (help-fns--function-numbers, help-fns--function-names):
New vars.
(help-fns--display-function): New aux function.
(help-fns-function-name): New function, inspired from
`help--describe-command`.
* lisp/help.el (help--describe-command): Use `help-fns-function-name`.
(help--for-help-make-sections): Remove redundant "" arg to `mapconcat`.
* lisp/profiler.el (profiler-format-entry, profiler-fixup-entry):
Delete functions.
(profiler-report-make-entry-part): Use `help-fns-function-name` instead.
(profiler-report-find-entry): Use `push-button`.
* lisp/transient.el (transient--debug): Use `help-fns-function-name`
when available.
Stefan Monnier [Thu, 21 Mar 2024 23:26:33 +0000 (19:26 -0400)]
(make-help-screen): Move most of the code out to a function
This avoids problems like variable-name capture and lets compiler messages
point to the actual source code.
* lisp/help-macro.el (help--help-screen): New function, extracted from
`make-help-screen`.
(make-help-screen): Use it.
Jonas Bernoulli [Thu, 21 Mar 2024 22:55:38 +0000 (23:55 +0100)]
Update to Transient
v0.6.0-1-gcaef3347
Stefan Monnier [Thu, 21 Mar 2024 22:27:03 +0000 (18:27 -0400)]
(describe-symbol-backends): Fix addition of the "type" backend
That backend was added from `cl-extra.el` with no autoload, so
(describe-symbol `advice) failed to show the info about
the `advice` type unless `cl-extra.el` had been loaded beforehand.
`C-h o RET advice RET` worked by accident because the completion
table uses `cl-some` which is autoloaded from `cl-extra.el`.
* lisp/help-mode.el (describe-symbol-backends): Add the "type" backend.
* lisp/emacs-lisp/cl-extra.el (describe-symbol-backends): Don't add the
"type" backend here.
Stefan Monnier [Thu, 21 Mar 2024 22:16:41 +0000 (18:16 -0400)]
byte-opt.el: Remove test that's not applicable any more
* lisp/emacs-lisp/byte-opt.el: Remove left-over test for ancient
byte-compiled representation.
Eli Zaretskii [Thu, 21 Mar 2024 20:12:40 +0000 (22:12 +0200)]
; * lisp/keymap.el (key-parse): Fix processing of "[TAB]". (Bug#69893)
Eli Zaretskii [Thu, 21 Mar 2024 19:35:24 +0000 (21:35 +0200)]
; Improve documentation of 'backup-by-copying'
* doc/emacs/files.texi (Backup Copying): Recommend
'backup-by-copying' for files on file-hosting services. (Bug#69930)
Stefan Monnier [Thu, 21 Mar 2024 16:28:54 +0000 (12:28 -0400)]
Speed up `describe-char` when a property has a large value
Doing `C-u C-x =` on a buffer position where the overlay/text
properties hold large values (e.g. inside the profiler report)
can be surprisingly slow because it pretty prints all those properties.
Change the code to do the pretty printing more lazily.
While at it, share that duplicated code between `descr-text.el` and
`wid-browse.el`.
* lisp/emacs-lisp/pp.el (pp-insert-short-sexp): New function.
* lisp/descr-text.el (describe-text-sexp): Delete function.
(describe-property-list): Use `pp-insert-short-sexp` instead.
* lisp/wid-browse.el (widget-browse-sexp): Use `pp-insert-short-sexp`
and `widget--allow-insertion`.
Stefan Monnier [Thu, 21 Mar 2024 16:08:02 +0000 (12:08 -0400)]
wid-edit.el: Cosmetic changes
* lisp/wid-edit.el: Use #' to quote function names.
(widget--simplify-menu, widget-echo-help): Explicitly specify the
lexenv to `eval`.
(widget-choose, widget-get-sibling, widget-setup, widget-field-find)
(widget-choice-action, widget-checklist-value-get)
(widget-radio-value-create, widget-radio-value-set)
(widget-radio-action, widget-editable-list-delete-at)
(widget-group-value-create, widget-choice-prompt-value): Use `dolist`.
(widget-convert): Hoist `(setq current` out of the ifs.
(widget-convert): Hoist `(setq keys` out of the if.
(widget-after-change): Hoist `(setq begin` out of the if.
(widget-default-completions): Use `cond`.
(widget-default-value-set): Hoist `goto-char` out of the if.
(widget-choice-action): Hoist `nth` out of the if.
(widget-checkbox-action): Hoist `widget-apply` out of the if.
(widget-editable-list-value-create): Hoist `car` out of the if.
(widget-editable-list-entry-create): Hoist `(setq child ...` out of the if.
(widget-documentation-link-action): Fold `if` into `cond`.
(widget-key-sequence-value-to-external): Use `key-parse`.
(widget-plist-convert-option, widget-alist-convert-option):
Hoist `(setq key-type` out of the if.
Stefan Monnier [Thu, 21 Mar 2024 15:38:12 +0000 (11:38 -0400)]
(widget--allow-insertion): New macro
* lisp/wid-edit.el (widget--allow-insertion): New macro.
(widget-specify-insert, widget-insert, widget-setup)
(widget-default-delete, widget-editable-list-insert-before)
(widget-editable-list-delete-at): Use it.
Po Lu [Thu, 21 Mar 2024 12:45:25 +0000 (20:45 +0800)]
; * src/xterm.c (syms_of_xterm): Document x-*-keysym's default values.
Andrea Corallo [Wed, 17 May 2023 13:28:46 +0000 (15:28 +0200)]
* Fix missing `comp-files-queue' update (bug#63415).
* lisp/emacs-lisp/comp.el (native--compile-async): Update
`comp-files-queue' for real.
Adam Porter [Sat, 9 Mar 2024 05:43:14 +0000 (23:43 -0600)]
'vtable-update-object' can now be called with one argument
It's often necessary to update the representation of a single
object in a table (e.g a struct, whose identity does not change
when its slots'
values are changed). To do so, now the function may be called
like this:
(vtable-update-object table object)
Instead of like this:
(vtable-update-object table object object)
This also documents the behavior of the just-discovered limitation filed
as bug#69837.
* lisp/emacs-lisp/vtable.el (vtable-update-object): Make 'old-object'
argument optional. (Bug#69666)
* doc/misc/vtable.texi (Interface Functions): Update documentation.
* etc/NEWS: Add news entry.
Basil L. Contovounesios [Sun, 17 Mar 2024 12:04:32 +0000 (13:04 +0100)]
Clarify description of format-spec truncation
* doc/lispref/strings.texi (Custom Format Strings): Mention that
precision specifier affects both '<' and '>' truncation (bug#69822).
* lisp/format-spec.el (format-spec, format-spec--do-flags): Use same
terminology as 'format', especially when referring to its behavior.
Eli Zaretskii [Thu, 21 Mar 2024 08:55:59 +0000 (10:55 +0200)]
More accurate documentation of 'rmail-mail-new-frame'
* doc/emacs/rmail.texi (Rmail Reply): More accurate documentation
of the effects of 'rmail-mail-new-frame'. (Bug#69738)
Eli Zaretskii [Thu, 21 Mar 2024 08:25:56 +0000 (10:25 +0200)]
Speed up display of RTL text with many character compositions
* src/bidi.c (bidi_level_start): New function.
* src/dispextern.h (bidi_level_start): Add prototype.
* src/xdisp.c (compute_stop_pos, set_iterator_to_next)
(get_visually_first_element, next_element_from_buffer): Call
'bidi_level_start' when looking for composed characters backwards,
to set limit of searching back, instead of looking all the way to
BOB. (Bug#69385)
Juri Linkov [Thu, 21 Mar 2024 07:49:34 +0000 (09:49 +0200)]
; * lisp/calendar/calendar.el: Remove extra space.
Adam Porter [Thu, 21 Mar 2024 07:13:28 +0000 (02:13 -0500)]
Avoid recomputing the whole table in 'vtable--recompute-numerical'
Each element of LINE being tested is a list, the first element of
which is the value actually being represented in the table.
Previously, the 'numberp' test would always fail, because it was
being compared with the list rather than the intended value in it;
that could cause the whole table to be recomputed, sometimes
unnecessarily.
* lisp/emacs-lisp/vtable.el (vtable--recompute-numerical): Test the
car of ELEM, not ELEM itself, which is a list. (Bug#69927)
Po Lu [Thu, 21 Mar 2024 06:23:40 +0000 (14:23 +0800)]
Android compatibility fixes
* doc/emacs/android.texi (Android Windowing): Document
restrictions on number of windows under Android 4.4 and earlier.
* java/AndroidManifest.xml.in <EmacsActivity>
<EmacsOpenActivity, EmacsMultitaskActivity>: Assign each class
of activity a unique task affinity.
* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
Remove redundant priority assignment.
* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Handle
file URIs when processing attachments from a mailto URI, and
check for KitKat before opening content ones.
* java/org/gnu/emacs/EmacsWindow.java <pointerMap>
(figureChange): Replace coordinate HashMap with a SparseArray.
* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
(registerWindow): Don't specify FLAG_ACTIVITY_NEW_DOCUMENT on
systems where it is absent.
Andrea Corallo [Wed, 20 Mar 2024 15:59:33 +0000 (16:59 +0100)]
; * lisp/emacs-lisp/comp-run.el (comp-run-async-workers): Fix indentation.
Eli Zaretskii [Wed, 20 Mar 2024 14:08:15 +0000 (16:08 +0200)]
; Minor copyedits of last change.
Andrea Corallo [Wed, 20 Mar 2024 13:49:28 +0000 (14:49 +0100)]
; * lisp/emacs-lisp/comp.el: Add a simple sanitizer usage example.
Eli Zaretskii [Wed, 20 Mar 2024 12:45:24 +0000 (14:45 +0200)]
Fix documentation of M-SPC in user manual
* doc/emacs/killing.texi (Deletion): Fix documentation of
'cycle-spacing'. (Bug#69905)
Eli Zaretskii [Wed, 20 Mar 2024 12:27:25 +0000 (14:27 +0200)]
; Fix doc strings of recent changes
* src/comp.c (syms_of_comp) <comp-sanitizer-active>:
* lisp/emacs-lisp/comp.el (comp-sanitizer-emit): Doc fixes.
Andrea Corallo [Wed, 20 Mar 2024 10:49:32 +0000 (11:49 +0100)]
; * lisp/emacs-lisp/comp-cstr.el (comp--normalize-typeset0): Fix comment.
Andrea Corallo [Wed, 21 Feb 2024 21:31:45 +0000 (22:31 +0100)]
Add native compiler sanitizer
* src/comp.c (ABI_VERSION): Bump new version.
(CALL0I): Uncomment.
(helper_link_table, declare_runtime_imported_funcs): Add
'helper_sanitizer_assert'.
(Fcomp__init_ctxt): Register emitter for
'helper_sanitizer_assert'.
(helper_sanitizer_assert): New function.
(syms_of_comp): 'helper_sanitizer_assert' defsym.
(syms_of_comp): 'comp-sanitizer-error' define error.
(syms_of_comp): 'comp-sanitizer-active' defvar.
* lisp/emacs-lisp/comp.el (comp-passes): Add 'comp--sanitizer'.
(comp-sanitizer-emit): Define var.
(comp--sanitizer): Define function.
* lisp/emacs-lisp/comp-run.el (comp-run-async-workers): Forward
'comp-sanitizer-emit'.
Robert Pluim [Wed, 20 Mar 2024 08:33:37 +0000 (09:33 +0100)]
; * lisp/emacs-lisp/cl-macs.el (cl-labels): Fix stray diff marker.
Po Lu [Wed, 20 Mar 2024 02:23:42 +0000 (10:23 +0800)]
Respect file display names during Android drag-and-drop
* java/org/gnu/emacs/EmacsService.java (buildContentName):
Remove redundant projection argument to resolver.query.
* java/org/gnu/emacs/EmacsWindow.java (onDragEvent): If a
content resolver is available, attempt to convert content URIs
into file names in advance.
* lisp/term/android-win.el (android-handle-dnd-event): Adjust
correspondingly.
Kévin Le Gouguec [Mon, 18 Mar 2024 18:47:59 +0000 (19:47 +0100)]
Fix vc-git test when no identities are configured
Reported by john muhl <jm@pub.pink>.
* test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo): Set
some environment variables (lifted from vc-tests.el) to let
'git commit' compute dummy author and committer identities.
Eli Zaretskii [Tue, 19 Mar 2024 12:45:45 +0000 (14:45 +0200)]
Unbreak the Cygw32 build broken by resent WTS_SESSION changes
* src/w32xfns.c (WTS_VIRTUAL_CLASS):
* src/w32fns.c (WTS_VIRTUAL_CLASS, WM_WTSSESSION_CHANGE)
(WTS_SESSION_LOCK): Define only for WINDOWSNT.
* src/w32xfns.c (drain_message_queue): Call
'reset_w32_kbdhook_state' only for WINDOWSNT. (Bug#69888)
Andrea Corallo [Tue, 19 Mar 2024 09:48:18 +0000 (10:48 +0100)]
* test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-93): Add test.
Andrea Corallo [Tue, 19 Mar 2024 09:41:52 +0000 (10:41 +0100)]
* Use 'cl-type-of' in comp-cstr.el
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-homogeneous-no-range)
(comp-cstr-union-1-no-mem, comp-cstr-intersection-no-hashcons):
Make use of 'cl-type-of' in place of 'type-of'.
Po Lu [Tue, 19 Mar 2024 04:17:43 +0000 (12:17 +0800)]
Update android.texi
* doc/emacs/android.texi (Android Startup): Describe
/content/by-authority-named.
Po Lu [Tue, 19 Mar 2024 04:08:17 +0000 (12:08 +0800)]
Respect display names of Android content URIs
* java/org/gnu/emacs/EmacsNative.java (displayNameHash): New
function.
* java/org/gnu/emacs/EmacsService.java (buildContentName): New
argument RESOLVER. Generate names holding URI's display name if
available. All callers changed.
* lisp/international/mule-cmds.el (set-default-coding-systems):
Fix file name coding system as utf-8-unix on Android as on Mac
OS.
* src/androidvfs.c (enum android_vnode_type): New enum
ANDROID_VNODE_CONTENT_AUTHORITY_NAMED.
(android_content_name): Register root directories for this new
type.
(displayNameHash): New function.
(android_get_content_name): New argument WITH_CHECKSUM. If
present, treat the final two components as a pair of checksum
and display name, and verify and exclude the two.
(android_authority_name): Provide new argument as appropriate.
(android_authority_initial_name): New function.
Eli Zaretskii [Mon, 18 Mar 2024 13:59:54 +0000 (15:59 +0200)]
; * lisp/vc/vc-git.el (vc-git--out-str): Doc fix.
Stefan Monnier [Mon, 18 Mar 2024 13:38:23 +0000 (09:38 -0400)]
* lisp/emacs-lisp/cl-preloaded.el (user-ptr): Add predicate
Stefan Monnier [Mon, 18 Mar 2024 13:35:11 +0000 (09:35 -0400)]
Merge branch 'cl-type-of' (bug#69739)
Stefan Monnier [Thu, 14 Mar 2024 16:49:08 +0000 (12:49 -0400)]
Followup changes to `cl-type-of`
These changes came up while working on `cl-type-of` but are not
directly related to the new `cl-type-of`.
The BASE_PURESIZE bump was needed at some point on one of my
machine, not sure why.
* src/puresize.h (BASE_PURESIZE): Bump up.
* src/sqlite.c (bind_value): Don't use `Ftype_of`.
* lisp/emacs-lisp/seq.el (seq-remove-at-position): Simplify.
* lisp/emacs-lisp/cl-preloaded.el (finalizer):
New (previously missing) type.
* doc/lispref/objects.texi (Type Predicates): Minor tweaks.
Stefan Monnier [Sun, 17 Mar 2024 21:29:02 +0000 (17:29 -0400)]
(primitive-function): New type
The type hierarchy and `cl-type-of` code assumed that `subr-primitive`
only applies to functions, but since it also accepts special-forms it makes
it an unsuitable choice since it can't be a subtype of `compiled-function`.
So, use a new type `primitive-function` instead.
* lisp/subr.el (subr-primitive-p): Fix docstring (bug#69832).
(primitive-function-p): New function.
* lisp/emacs-lisp/cl-preloaded.el (primitive-function): Rename
from `subr-primitive` since `subr-primitive-p` means something else.
* src/data.c (Fcl_type_of): Return `primitive-function` instead
of `subr-primitive` for C functions.
(syms_of_data): Adjust accordingly.
* test/src/data-tests.el (data-tests--cl-type-of): Remove workaround.
Stefan Monnier [Tue, 12 Mar 2024 13:26:24 +0000 (09:26 -0400)]
(cl-type-of): New function to return more precise types (bug#69739)
* src/data.c (Fcl_type_of): New function, extracted from `Ftype_of`.
Make it return more precise types for symbols, integers, and subrs.
(Ftype_of): Use it.
(syms_of_data): Define the corresponding new symbols and defsubr
the new function.
* doc/lispref/objects.texi (Type Predicates): Document it.
* src/comp.c (emit_limple_insn): Use `Fcl_type_of`.
* lisp/emacs-lisp/cl-preloaded.el (subr): Demote it to `atom`.
(subr-native-elisp, subr-primitive): Add `compiled-function` as
parent instead.
(special-form): New type.
* lisp/obsolete/eieio-core.el (cl--generic-struct-tag):
* lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-generalizer):
Use `cl-type-of`.
cl--generic--unreachable-types): Update accordingly.
test/src/data-tests.el (data-tests--cl-type-of): New test.
Po Lu [Mon, 18 Mar 2024 01:14:18 +0000 (09:14 +0800)]
Makeshift solution for X server bug
* src/xterm.c (x_sync_init_fences): Detect errors around
XSyncCreateFence. (bug#69762)
Kévin Le Gouguec [Mon, 12 Feb 2024 07:29:19 +0000 (08:29 +0100)]
; Re-apply accidentally reverted commit
This re-applies:
2024-03-17 "Fix vc-dir when "remote" Git branch is local"
(
21828f288ef)
reverted as part of the unrelated:
2024-03-17 "Update modus-themes to their 4.4.0 version"
(
67b0c1c09ea)
The original commit message follows:
Fix vc-dir when "remote" Git branch is local
While in there, add that "tracking" branch to the vc-dir
buffer. For bug#68183.
* lisp/vc/vc-git.el (vc-git-dir-extra-headers): Reduce
boilerplate with new function 'vc-git--out-ok'; stop calling
vc-git-repository-url when REMOTE is "." to avoid throwing an
error; display tracking branch; prefer "none (<details...>)" to
"not (<details...>)" since that reads more grammatically
correct.
(vc-git--out-ok): Add documentation.
(vc-git--out-str): New function to easily get the output from a
Git command.
* test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo)
(vc-git-test--run): New helpers, defined to steer clear of
vc-git-- internal functions.
(vc-git-test-dir-track-local-branch): Check that vc-dir does
not crash.
Juri Linkov [Sun, 17 Mar 2024 17:57:05 +0000 (19:57 +0200)]
* lisp/tab-bar.el (tab-bar-select-restore-windows): New defcustom.
(tab-bar-select-restore-windows): New function.
(tab-bar-select-tab): Let-bind window-restore-killed-buffer-windows
to tab-bar-select-restore-windows (bug#68235).
Protesilaos Stavrou [Sun, 17 Mar 2024 16:49:21 +0000 (18:49 +0200)]
Update source repository of the Modus themes
* admin/MAINTAINERS: Update URL and remove outdated references.
Protesilaos Stavrou [Sun, 17 Mar 2024 16:46:15 +0000 (18:46 +0200)]
Update modus-themes to their 4.4.0 version
* doc/misc/modus-themes.org: Update the manual to better document
existing functionality and cover the new features.
* etc/themes/modus-operandi-deuteranopia-theme.el:
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-operandi-tinted-theme.el:
* etc/themes/modus-operandi-tritanopia-theme.el:
* etc/themes/modus-vivendi-deuteranopia-theme.el:
* etc/themes/modus-vivendi-theme.el:
* etc/themes/modus-vivendi-tinted-theme.el:
* etc/themes/modus-vivendi-tritanopia-theme.el: Update the
palette of each theme.
* etc/themes/modus-themes.el (require): Remove call to cl-lib
and do not use relevant functions.
(modus-themes-operandi-colors, modus-themes-vivendi-colors)
(modus-themes-version, modus-themes-report-bug): Remove old
calls to 'make-obsolete' and related.
(modus-themes--annotate-theme): Tweak the completion annotation function.
(modus-themes--org-block): Deprecate the user option 'modus-themes-org-blocks'.
(modus-themes-faces): Update faces.
(modus-themes-custom-variables): Update the list of custom
variables.
Detailed release notes are available here:
<https://protesilaos.com/codelog/2024-03-17-modus-themes-4-4-0/>.
Kévin Le Gouguec [Mon, 12 Feb 2024 07:29:19 +0000 (08:29 +0100)]
Fix vc-dir when "remote" Git branch is local
While in there, add that "tracking" branch to the vc-dir
buffer. For bug#68183.
* lisp/vc/vc-git.el (vc-git-dir-extra-headers): Reduce
boilerplate with new function 'vc-git--out-ok'; stop calling
vc-git-repository-url when REMOTE is "." to avoid throwing an
error; display tracking branch; prefer "none (<details...>)" to
"not (<details...>)" since that reads more grammatically
correct.
(vc-git--out-ok): Add documentation.
(vc-git--out-str): New function to easily get the output from a
Git command.
* test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo)
(vc-git-test--run): New helpers, defined to steer clear of
vc-git-- internal functions.
(vc-git-test-dir-track-local-branch): Check that vc-dir does
not crash.
Michael Albinus [Sun, 17 Mar 2024 12:25:35 +0000 (13:25 +0100)]
* admin/notes/bugtracker: Minor copyedit.
Po Lu [Sun, 17 Mar 2024 11:32:15 +0000 (19:32 +0800)]
Improve C++ standard library detection on Android
* configure.ac: Stop relaying --with-ndk-cxx-shared to the
nested invocation of configure.
* build-aux/ndk-build-helper-1.mk (SYSTEM_LIBRARIES):
* build-aux/ndk-build-helper-2.mk (SYSTEM_LIBRARIES): Insert all
of the C++ libraries available on Android.
* configure.ac: Call ndk_LATE and ndk_LATE_EARLY within if
statement at toplevel, averting needless calls to AC_PROG_CXX.
* cross/ndk-build/Makefile.in (NDK_BUILD_CXX_STL)
(NDK_BUILD_CXX_LDFLAGS):
* cross/ndk-build/ndk-build.mk.in (NDK_BUILD_CXX_STL)
(NDK_BUILD_CXX_LDFLAGS): New variables.
* cross/ndk-build/ndk-resolve.mk (NDK_SYSTEM_LIBRARIES):
Introduce several other C++ libraries sometimes present on
Android.
(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)): Insert NDK_BUILD_CXX_STL
when any of these new C++ libraries are requested.
* m4/ndk-build.m4: Completely rewrite C++ compiler and library
detection.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Attempt to
load more libraries from static initializer.
* java/INSTALL: Remove obsolete information.
Eli Zaretskii [Sun, 17 Mar 2024 08:47:41 +0000 (10:47 +0200)]
; * admin/notes/bugtracker: Minor copyedit.
Stefan Monnier [Sun, 17 Mar 2024 03:10:48 +0000 (23:10 -0400)]
debug.el: Prevent re-entering the debugger for the same error
We can have several active `handler-bind`s that all want to invoke the
debugger, in which case we can have the following sequence:
- The more deeply nested handler calls the debugger.
- After a while the user invokes `debugger-continue`.
- `signal_or_quit` propagates the error up the stack to the
second handler, which calls the debugger again.
- The user thus ends up right back at the same place, as if
`debugger-continue` had not be processed.
Fix this by remembering the last processed error and skipping
the debugger if we bump into it again.
* lisp/emacs-lisp/debug.el (debugger--last-error): New var.
(debugger--duplicate-p): New function.
(debug): Use them.
Theodor Thornhill [Sat, 16 Mar 2024 19:28:10 +0000 (20:28 +0100)]
Tweak regexp for object initializers in csharp-mode (bug#69571)
* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Add
handling to not consider ended statements as object init openers.
* test/lisp/progmodes/csharp-mode-resources/indent.erts: New test
resources.
* test/lisp/progmodes/csharp-mode-tests.el: Add test for this particular
issue.
Basil L. Contovounesios [Sat, 16 Mar 2024 13:15:25 +0000 (14:15 +0100)]
; Pacify -Wmaybe-uninitialized in coding.c.
Warning seen with GCC 13 -Og.
Konstantin Kharlamov [Sat, 16 Mar 2024 10:24:34 +0000 (13:24 +0300)]
`term-mode': mention the keymap to add keybindings to
A user typically expects a keymap for mode `foo' to be called
`foo-mode-map'. term-mode has `term-mode-map' too, but for
user-defined bindings to have effect they have to be put to
`term-raw-map' instead. So let's mention that.
* lisp/term.el (term-mode) (term-mode-map) (term-raw-map): Mention
the keymaps to add keybindings to for `term-mode'. (Bug#69786)
Eli Zaretskii [Sat, 16 Mar 2024 11:07:52 +0000 (13:07 +0200)]
Fix 'shortdoc-copy-function-as-kill'
* lisp/emacs-lisp/shortdoc.el (shortdoc-copy-function-as-kill):
Fix handling of functions with no arguments. (Bug#69720)
Eli Zaretskii [Sat, 16 Mar 2024 10:58:33 +0000 (12:58 +0200)]
; Document more DND functions with limited support
* lisp/dnd.el (dnd-begin-text-drag, dnd-begin-file-drag)
(dnd-begin-drag-files): Document platforms that support these
functions. (Bug#69662)
Eli Zaretskii [Sat, 16 Mar 2024 10:42:16 +0000 (12:42 +0200)]
Improve documentation of 'edebug-print-*' variables
* lisp/emacs-lisp/edebug.el (edebug-print-length)
(edebug-print-level): Fix doc strings and customization labels.
Suggested by Matt Trzcinski <matt@excalamus.com>. (Bug#69745)
Eli Zaretskii [Sat, 16 Mar 2024 09:58:56 +0000 (11:58 +0200)]
; Fix recent changes in documentation
* doc/lispref/markers.texi (Information from Markers):
* etc/NEWS: Improve description of 'marker-last-position'.
Eli Zaretskii [Sat, 16 Mar 2024 09:52:31 +0000 (05:52 -0400)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Eli Zaretskii [Sat, 16 Mar 2024 09:47:41 +0000 (05:47 -0400)]
Merge from origin/emacs-29
3b791ebbe17 ; Fix 'usage:' keyword in Ffile_name_concat doc.
ed48b0d657c ; * CONTRIBUTE: Ask not to use non-ASCII unless necessary.
b708e639d63 ; * src/lread.c (maybe_swap_for_eln): Clarify warning mes...
db027a06976 ; Fix bibtex-biblatex-field-alist docstring typo.
a9be5c7ea92 ; * doc/lispref/control.texi (Conditionals): Add missing ...
db5915f30ba Fix 'with-sqlite-transaction'
fe491173e8f ; * doc/emacs/files.texi (Image Mode): Fix typo (bug#69671).
Martin Rudalics [Sat, 16 Mar 2024 09:46:02 +0000 (10:46 +0100)]
Document and announce 'marker-last-position'
* doc/lispref/markers.texi (Information from Markers): Document
'marker-last-position'.
* etc/NEWS: Announce 'marker-last-position'.
* src/window.c (window_restore_killed_buffer_windows): Minor
doc-string fix.
* doc/lispref/windows.texi (Window Configurations): Minor fix.
Martin Rudalics [Sat, 16 Mar 2024 09:10:29 +0000 (10:10 +0100)]
In window-related documentation write 'symbol' instead of 'constant'
Suggested by Michael Heerdegen <michael_heerdegen@web.de>.
* src/window.c (window_restore_killed_buffer_windows): In
doc-string write 'symbol' instead of 'constant'.
* lisp/window.el (display-buffer--lru-window)
(display-buffer-use-least-recent-window): In doc-strings write
'symbol' instead of 'constant'.
* doc/lispref/windows.texi (Window Configurations): Write
'symbol' instead of 'constant'.
Po Lu [Sat, 16 Mar 2024 07:18:07 +0000 (15:18 +0800)]
; * src/xterm.c (syms_of_xterm): Fix typo.
Po Lu [Sat, 16 Mar 2024 07:15:10 +0000 (15:15 +0800)]
Respond to default action from Gnus notifications
* lisp/gnus/gnus-notifications.el (gnus-notifications-action):
Consider default equivalent to read.
Po Lu [Sat, 16 Mar 2024 07:13:09 +0000 (15:13 +0800)]
Support x-*-keysym on Android
* src/androidterm.c (android_android_to_emacs_modifiers)
(android_emacs_to_android_modifiers, syms_of_androidterm): Port
x-*-keysym from xterm.c.
Po Lu [Sat, 16 Mar 2024 07:12:33 +0000 (15:12 +0800)]
Correct doc strings for x-*-keysym
* src/xterm.c (syms_of_xterm): Clarify whether x-*-keysym
affects the modifier key reported for a keysym or the other way
around.
Po Lu [Sat, 16 Mar 2024 01:55:23 +0000 (09:55 +0800)]
* doc/lispref/frames.texi (Window System Selections): Fix misuse of xref.
Po Lu [Sat, 16 Mar 2024 01:50:58 +0000 (09:50 +0800)]
; Circumvent miscompilations on Sun C 5.12 (148917-07)
* src/minibuf.c (Ftry_completion, Fall_completions): Transform
ternary expressions after open-ended if statements into proper
if/else statements.
Po Lu [Sat, 16 Mar 2024 01:29:42 +0000 (09:29 +0800)]
Fix calc.texi for Texinfo 4.13
* doc/misc/calc.texi (Fractions): Replace instances of @U with
raw Unicode characters and adjust the document encoding
suitably.
Basil L. Contovounesios [Fri, 15 Mar 2024 23:23:41 +0000 (00:23 +0100)]
; * src/eval.c (Fhandler_bind_1): Fix docstring.
Basil L. Contovounesios [Fri, 15 Mar 2024 23:19:43 +0000 (00:19 +0100)]
; Fix 'usage:' keyword in Ffile_name_concat doc.
Stefan Monnier [Fri, 15 Mar 2024 16:45:09 +0000 (12:45 -0400)]
* lisp/emacs-lisp/bindat.el (sint): Burp in dynbind (bug#69749)
Andrea Corallo [Fri, 15 Mar 2024 13:18:51 +0000 (14:18 +0100)]
* Don't install unnecessary trampolines (bug#69573)
* lisp/emacs-lisp/comp-run.el (comp-subr-trampoline-install):
Check that subr-name actually matches the target subr.
Andrea Corallo [Fri, 15 Mar 2024 11:32:06 +0000 (12:32 +0100)]
* lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): Don't declare.
Eli Zaretskii [Fri, 15 Mar 2024 12:22:14 +0000 (14:22 +0200)]
; Fix documentation of a recent change (bug#68235)
* etc/NEWS:
* doc/lispref/windows.texi (Window Configurations): Improve
wording of 'window-restore-killed-buffer-windows's doc.
* src/window.c (syms_of_window)
<window-restore-killed-buffer-windows>: Doc fix.
* etc/NEWS:
* doc/lispref/buffers.texi (Buffer Names): Document
'buffer-last-name'.
Eli Zaretskii [Fri, 15 Mar 2024 11:29:31 +0000 (13:29 +0200)]
; * CONTRIBUTE: Ask not to use non-ASCII unless necessary.
Martin Rudalics [Fri, 15 Mar 2024 10:53:31 +0000 (11:53 +0100)]
Fix bug with CHECK_STRUCTS introduced by last buffer.h change
* src/pdumper.c (dump_buffer): Fix HASH_buffer_. Assign
last_name_ field.